package io.renren.modules.yckj.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 预约列表
 *
 * @author Mark sunlightcs@gmail.com
 * @since 1.0.0 2025-04-28
 */
@Data
@TableName("tb_order")
public class OrderEntity {

    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 项目id
     */
    private Long projectId;
    /**
     * 项目名称
     */
    private String projectName;
    /**
     * 机器id
     */
    private Long machineId;
    /**
     * 机器名称
     */
    private String machineName;
    /**
     * 机器类型
     */
    private Integer machineType;
    /**
     * 分类id
     */
    private Long cateId;
    /**
     * 分类名称
     */
    private String cateName;
    /**
     * 联系人
     */
    private String contacts;
    /**
     * 联系人电话
     */
    private String phone;
    /**
     * 联系人邮箱
     */
    private String email;
    /**
     * 预约时间(日期)
     */
    private Date bookTime;
    /**
     * 预约开始时间
     */
    private String bookStartTime;
    /**
     * 预约结束时间
     */
    private String bookEndTime;
    /**
     * 总的工时(如2.5小时）
     */
    private BigDecimal bookTotalTime;
    /**
     * 所有时间（以逗号隔开）
     */
    private String bookAllTimes;
    /**
     * 样品名称
     */
    private String name;
    /**
     * 拍摄方式：0现场，1云视频
     */
    private Integer shootingWay;
    /**
     * 完结方式：0线上，1线下
     */
    private Integer finishType;
    /**
     * 取样方式：0取样，1邮寄,2自带样品
     */
    private Integer way;
    /**
     * 取样地址
     */
    private String wayDetail;
    /**
     * 样品备注
     */
    private String note;
    /**
     * 是否回收：0需要，1不需要
     */
    private Integer recycle;
    /**
     * 回收详情，地址和联系方式
     */
    private String recycleDetail;
    /**
     * 预约人Id
     */
    private Long userId;
    /**
     * 预约人名称
     */
    private String userName;
    /**
     * 课题组id
     */
    private Long teamId;
    /**
     * 课题组名称
     */
    private String teamName;
    /**
     * 审核：0审核，1通过，2不通过
     */
    private Integer teamReview;
    /**
     * 状态，0待确认，1待收样，2进行中，3待支付，4支付完成
     */
    private Integer status;
    /**
     * 管理端用户Id
     */
    private Long bkId;
    /**
     * 管理端用户名称
     */
    private String bkName;
    /**
     * 客户是否签字：0否，1是
     */
    private Integer sign;
    /**
     * 客户签字图片url
     */
    private String signImage;
    /**
     * 支付方式：0个人余额支付，1课题组余额支付,2微信支付"
     */
    private Integer payWay;

    /**
     * 预计费用
     */
    private BigDecimal amount;
    /**
     * 预计金额
     */
    private BigDecimal preAmount;
    /**
     * 实际金额
     */
    private BigDecimal actualAmount;
    /**
     * 是否开发票：0否，1是
     */
    private Integer isInvoice;
    /**
     * 发票抬头id
     */
    private Long invoiceId;
    /**
     * 报告文件，以json格式保存{name:,url}
     */
    private String reports;

    /**
     * 优惠券Id
     */
    private Long couponsLogId;
    /**
     * 优惠券Id
     */
    private Long couponsId;

    /**
     * 优惠券标题
     */
    private String couponsTitle;

    /**
     * 优惠券金额
     */
    private BigDecimal couponsDiscount;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新时间
     */
    private Date updateTime;
    /**
     * 附项1名称
     */
    private String appendixOneName;
    /**
     * 附项1单价
     */
    private BigDecimal appendixOnePrice;

    /**
     * 附项1数量
     */
    private BigDecimal appendixOneNum;
    /**
     * 项目图片
     */
    @TableField(exist = false)
    private String projectImage;

}